package com.cashmama.market.api.application.controller.authentication.personalInfo.vo;

import com.cashmama.market.api.application.controller.authentication.personalInfo.InputContent;
import com.cashmama.market.api.application.controller.authentication.vos.InputParams;
import com.cashmama.market.api.application.enums.ParamType;
import com.cashmama.market.api.infras.enums.AuthOptionsEnums;

import java.io.Serializable;

/**
 * Created with IntelliJ IDEA.
 * User: yujianfu (mr.vencnet@gmail.com)
 * Date: 2019-12-23
 * Time: 14:34
 */
public class BasicInfo implements Serializable {
    private static final long serialVersionUID = -150084444967071376L;


    @InputContent(paramName = "Basic Info", param = "basicInfoTitle", paramType = ParamType.LABEL, required = false)
    private InputParams basicInfoTitle;

    @InputContent(paramName = "First Name", param = "firstName", inputDesc = "Input your first name", paramType = ParamType.TEXT)
    private InputParams firstName;

    @InputContent(paramName = "Last Name", param = "lastName", inputDesc = "Input your last name", paramType = ParamType.TEXT)
    private InputParams lastName;

    @InputContent(paramName = "DOB", param = "dob", inputDesc = "Select your DOB", paramType = ParamType.DATE_PICK)
    private InputParams dob;

    @InputContent(paramName = "Language", param = "language", paramType = ParamType.SELECT, operationEnum = AuthOptionsEnums.LANGUAGE)
    private InputParams language;

    @InputContent(paramName = "Gender", param = "gender", paramType = ParamType.SELECT, operationEnum = AuthOptionsEnums.GENDER)
    private InputParams gender;


    @InputContent(paramName = "Father`s Name", param = "fatherName", inputDesc = "Input your Father`s Name", paramType = ParamType.TEXT)
    private InputParams fatherName;

    @InputContent(paramName = "Mother`s Name", param = "matherName", inputDesc = "Input your Mother`s Name", paramType = ParamType.TEXT)
    private InputParams matherName;

    @InputContent(paramName = "Marital Status", param = "marital", paramType = ParamType.SELECT, operationEnum = AuthOptionsEnums.MARRIAGE)
    private InputParams marital;

//    @InputContent(paramName = "Purpose", param = "purpose", paramType = ParamType.SELECT, operationEnum = AuthOptionsEnums.USAGE)
//    private InputParams purpose;

    @InputContent(paramName = "Email", param = "email", inputDesc = "Enter your E-mail Address", paramType = ParamType.TEXT)
    private InputParams email;

    public InputParams getEmail() {
        return email;
    }

    public BasicInfo setEmail(InputParams email) {
        this.email = email;
        return this;
    }

    public InputParams getBasicInfoTitle() {
        return basicInfoTitle;
    }

    public BasicInfo setBasicInfoTitle(InputParams basicInfoTitle) {
        this.basicInfoTitle = basicInfoTitle;
        return this;
    }

    public BasicInfo() {
    }

    public InputParams getFirstName() {
        return firstName;
    }

    public BasicInfo setFirstName(InputParams firstName) {
        this.firstName = firstName;
        return this;
    }

    public InputParams getLastName() {
        return lastName;
    }

    public BasicInfo setLastName(InputParams lastName) {
        this.lastName = lastName;
        return this;
    }

    public InputParams getGender() {
        return gender;
    }

    public BasicInfo setGender(InputParams gender) {
        this.gender = gender;
        return this;
    }

    public InputParams getLanguage() {
        return language;
    }

    public BasicInfo setLanguage(InputParams language) {
        this.language = language;
        return this;
    }

    public InputParams getFatherName() {
        return fatherName;
    }

    public BasicInfo setFatherName(InputParams fatherName) {
        this.fatherName = fatherName;
        return this;
    }

    public InputParams getMatherName() {
        return matherName;
    }

    public BasicInfo setMatherName(InputParams matherName) {
        this.matherName = matherName;
        return this;
    }

    public InputParams getMarital() {
        return marital;
    }

    public BasicInfo setMarital(InputParams marital) {
        this.marital = marital;
        return this;
    }

    public InputParams getDob() {
        return dob;
    }

    public BasicInfo setDob(InputParams dob) {
        this.dob = dob;
        return this;
    }
}
